/**
 * License under GNU's GPL 
 * User.java 
 */


import java.util.List;
import java.util.ArrayList;

/**
 * Class represents a user
 * 
 * @author Team 9
 * @version 1.0
 * 
 */
public class User {

	/**
	 * Overrides the toString() method to print the appropriate instance
	 * variables
	 * 
	 * @return String to be printed
	 */
	@Override
	public String toString() {
		return "User [appointment=" + appointment + ", lastName=" + lastName
				+ ", firstName=" + firstName + ", userName=" + userName
				+ ", password=" + password + ", suspend=" + suspend + "]";
	}

	/**
	 * Variable to generate the appointment GUI page
	 */
	protected AppointmentPage appointment;

	/**
	 * Arraylist to hold different appointment details
	 */
	protected List<Appointment> appointmentArray = new ArrayList<Appointment>();

	/**
	 * String variable for last name
	 */
	protected String lastName;

	/**
	 * String variable for first name
	 */
	protected String firstName;

	/**
	 * String variable for user name
	 */
	protected String userName;

	/**
	 * String variable for password
	 */
	protected String password;

	/**
	 * Boolean to check if account is suspended
	 */
	protected boolean suspend;

	/**
	 * int to specify type of user
	 */
	protected int type; // 0-admin 1-doctor 2-nurse 3-patient

	/**
	 * Getter for type
	 * @return type
	 */
	public int getType() {
		return type;
	}

	/**
	 * Setter for type
	 * @param type value for type
	 */
	public void setType(int type) {
		this.type = type;
	}

	/**
	 * Method to check if a user is suspended
	 * 
	 * @return true, if suspended otherwise false
	 */
	public boolean isSuspend() {
		return suspend;
	}

	/**
	 * Setter for suspend
	 * 
	 * @param suspend
	 *            true to suspend, false to unsuspend
	 */
	public void setSuspend(boolean suspend) {
		this.suspend = suspend;
	}

	/**
	 * Getter for lastName
	 * 
	 * @return lastName
	 */
	public String getLastName() {
		return lastName;
	}

	/**
	 * Setter for lastName
	 * 
	 * @param lastName
	 *            value for lastName
	 */
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	/**
	 * Getter for firstName
	 * 
	 * @return firstName
	 */
	public String getFirstName() {
		return firstName;
	}

	/**
	 * Setter for firstName
	 * 
	 * @param firstName
	 *            value for firstName
	 */
	public void setFirstName(String firstName) {
		this.firstName = firstName;

	}

	/**
	 * Getter for userName
	 * 
	 * @return userName
	 */
	public String getUserName() {
		return userName;
	}

	/**
	 * Setter for userName
	 * 
	 * @param userName
	 *            value for userName
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

	/**
	 * Getter for password
	 * 
	 * @return password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * Setter for password
	 * 
	 * @param password
	 *            value for password
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * Method to generated the GUI
	 * 
	 * @return the GUI
	 */
	public Object getGUI() {
		return 0;
	}

	/**
	 * Method to show the GUI
	 * 
	 */
	public void showGUI() { // $codepro.audit.disable emptyMethod
	}

}
